// 不论传入服务器的数据是什么都是字符串
// 1、导入express包
import express, { json } from 'express';
import cors from 'cors';

// 2、创建一个应用程序（实例）
const app = express();

// 中间件（先执行这里）
app.use(cors()); // 允许跨域

// 解析post请求体参数
app.use(express.json());
app.use(express.urlencoded({ extended: true }));


// 3. 编写请求的路由 app.请求方法(请求路径,(req,res)=>{  }
// 浏览器地址栏只能获取get请求
// 请求方法:1、get获取资源；2、post(获取敏感数据，提交数据)创建新资源；3、put更新资源；4、delete删除资源
// data{}里是请求体参数
app.get('/', (req, res) => {
    res.send('Hello ZZC');
})

app.get('/user', (req, res) => {
    // 接收查询字符串 req.query
    let { id, name } = req.query;
    console.log(id, name);
    // res.json(数据)：将数据以json的数据格式响应给前端
    let userInfo = { name: '周志超', age: 20 };
    res.json(userInfo);
})

app.post('/fruit', (req, res) => {
    let fruit = ['apple', 'orange', 'banana', 'pear', 'durian'];
    res.json(fruit);
})

app.get('/songs', (req, res) => {
    // 1、获取查询字符串
    let { id } = req.query;
    // 2、定义一个虚拟的写死的数据库
    let songs = [
        { id: 1111, name: '泡沫' },
        { id: 2222, name: '如果流浪' },
        { id: 3333, name: '俩只老虎' },
        { id: 4444, name: '再见' },
    ];
    // 3、定义空对象，查询到的id匹配到，放入空对象里
    let musicSong = {};
    // 4、循环遍历数据库与输入的id判断对应
    songs.forEach((song) => {
        if (song.id === parseInt(id)) {
            musicSong = song
        };
    });
    // 5、返回获取到配对的对象放入后端中
    res.json(musicSong);
});

// 登陆页面案例（后端服务）接口
app.post('/login', (req, res) => {
    // 获取请求体参数：req.body
    let { username, password } = req.body;
    // 创建虚拟数据库实现获取与后端数据匹配
    let users = [
        { id: 1, username: 'admin', password: '123' },
        { id: 2, username: 'test', password: '456' },
        { id: 3, username: 'mi', password: '789' },
    ];
    // 匹配用户名和密码是否成功
    let result = users.filter((user) => {
        return user.username === username && user.password === password;
    });
    if (result.length > 0) {
        // 匹配成功
        // message是状态信息,code是状态码
        res.json({ message: "登录成功", code: 20000 });
    } else {
        // 匹配失败
        res.json({ message: "用户名或密码错误", code: 20001 });
    };
});

// 学校官网新闻数据接口
app.get('/news', (req, res) => {
    let datas = [
        {
            id: 1,
            title: '我校牵头成立全国金融科技行业产教融合共同体',
            content: '10月25日，由江西财经大学、北京济安金信科技有限公司、江西财经职业学院三方牵头发起的全国金融科技行业产教融合共同体在江西南昌正式成立，江西财经大学校长邓辉，江西省教育考试院党委书记刘彪文，中国人民大学金融信息中心主任、北京济安金信科技有限公司董事长杨健，深圳市中元产教融合科技有限公司董事长燕中元，江西财经职业学院校长彭慧出席成立大会并致辞，江西财经大学党委常委、副校长李春根主持会议。邓辉表示，当',
            pubDate: '2024-10-29',
            img: 'https://www.jxvc.jx.cn/__local/7/19/1C/CE0A1D9472548F4CA29BEAF9DDB_034488B1_3B1EF.png',
        },
        {
            id: 2,
            title: '铜陵市政府副市长杨文萍一行来我校考察调研',
            content: '10月29日下午，铜陵市人民政府副市长杨文萍带队来我校考察调研产教融合工作，九江市政府党组成员、副市长杜少华，校党委副书记、校长彭慧，校党委委员刘锋以及华为技术有限公司、江西赛创信息技术有限公司负责人等陪同调研。杨文萍一行实地考察了九江数字经济市域产教联合体建设展厅，华为鲲鹏产业学院云计算、融合通讯、人工智能、5G应用实训室，华为新一代信息技术创新中心等，双方就鲲鹏产业学院建设和未来规划、特色育人模',
            pubDate: '2024-10-30',
            img: 'https://www.jxvc.jx.cn/__local/F/C2/CF/5201AEDDC051F1A9358C2CFACB2_FCDB6C8C_15C2C.png',
        },
        {
            id: 3,
            title: '我校牵头成立全国金【江西新闻报道】江西财经职业学院第二十三期“财院之星”大学生骨干赴共青城市开展实践活动融科技行业产教融合共同体',
            content: '链接：https://www.jxxw.com.cn/content_html/html/55/p/pc/2024/10/132790835.htm',
            pubDate: '2024-10-30',
            img: 'https://www.jxvc.jx.cn/__local/5/39/C5/7E0553D3D690A2D5BEF6D67D310_227E68D5_9BF3E.png',
        },
        {
            id: 4,
            title: '2024年九江市“庐山杯”大学生足球赛（校园电视台制作）',
            content: '链接：https://www.jxxw.com.cn/content_html/html/55/p/pc/2024/10/132790835.htm',
            pubDate: '2024-10-15',
            img: 'https://www.jxvc.jx.cn/__local/0/25/48/6390186F6E2C01C252C0187E571_59AA3162_1A242.png',
        },
        {
            id: 5,
            title: '《刀刃向内，自我革命——中国共产党为什么能的密码》',
            content: '由教育部高校思想政治理论课教学指导委员会主办，南开大学马克思主义学院承办的“新思想引领新征程·新青年建功新时代”——第七届全国高校大学生讲思政课公开课展示活动评审结果公布，1403所高校报送的4402份作品，共评选出获奖作品598项。由我校马克思主义学院教师冯秋娟、钟水青指导，学生王永康、刘伟、祝潇倩、孙诗敏主讲的参赛作品《刀刃向内，自我革命——中国共产党为什么能的密码》荣获高职组三等奖',
            pubDate: '2024-6-28',
            img: 'https://www.jxvc.jx.cn/__local/6/3C/EC/311343A27DF455A7759A2E48BE0_47DB8DEA_1AA35.png',
        }
    ];
    res.json(datas);
});

// 学校官网部门动态数据接口
app.get('/section', (req, res) => {
    let datas = [
        {
            id: 1,
            title: '工商管理学院召开2025届毕业生就业动员大会',
            content: '为促进2025届毕业生充分了解就业形势，引导同学们进行合理就业升学规划，助推高质量就业，工商管理学院于10月30日下午，在行政楼一号报告厅召开了2025届毕业生就业动员大会。2025届全体本、专科毕业学生、班主任及学院党政班子成员参加会议。会议开始，党总支书记武丹发表动员讲话。通过大量数据分析了当前面临的市场就业形势、机遇挑战及岗位供需矛盾，鼓励同学们要结合自身实际情况，保持积极乐观心态，选择合适的岗位。提醒',
            pubDate: '2024-10-31',
            img: 'https://www.jxvc.jx.cn/__local/7/41/EA/56294F2036FB9AB2CC60AF7EA0E_C8434A59_12B68.png',
        },
        {
            id: 2,
            title: '现代服务学院开展“心光闪耀，共筑健康梦” 心理健康活动',
            content: '为深切关怀学生心理健康，确保学生在学业与心理层面均能茁壮成长，现代服务学院于10月29日下午，在浔阳校区综合楼第六阶梯教室成功举办了一场主题为“心光闪耀，共筑健康梦”的心理健康活动，本次活动由曾征老师主讲，24级全体心理咨询专业学生参加了活动。本次活动旨在提升大学生对于心理健康的认知，更为大家提供了一个交流与分享的平台，共同探讨如何在快节奏的生活中守护心灵绿洲。曾征不仅积极倡导自我心理健康的关注，还',
            pubDate: '2024-10-31',
            img: 'https://www.jxvc.jx.cn/__local/5/A8/2B/5FF44C9636D378FE8BBE5E612A8_4033CDB3_1FA85.png',
        }
    ];
    res.json(datas);
})

//Tab切换选项卡切换接口
app.get('/tabs', (req, res) => {
    // 接收参数
    let { id } = req.query;
    let datas = [
        { id: 1, content: 'html html html html html html html html html' },
        { id: 2, content: 'javascript javascript javascript javascript ' },
        { id: 3, content: 'vue vue vue vue vue vue vue vue vue vue vue' },
    ];
    let result = datas.filter((item) => {
        return item.id === parseInt(id);
    });
    if (result.length > 0) {
        res.json(result[0]);
    } else {
        res.json({});
    };
})

//Tab切换选项卡切换接口高级
app.get('/tabsContent', (req, res) => {
    let data = {
        titles: [
            { id: 1, title: "HTML" },
            { id: 2, title: "Javascript" },
            { id: 3, title: "Vue" },],
        contents: [
            { id: 1, content: "HTML精品教程" },
            { id: 2, content: "JavaScript精品教程" },
            { id: 3, content: "Vue项目实战" },],
    };
    res.json(data);
});

// 搜索框关键字显示
app.get('/search', (req, res) => {
    let { word } = req.query;
    // 输入的值为空可能全显示,所以取反当输入的为空值时返回空字符
    if (!word) {
        res.json([]);
        return;
    }
    let search = [
        { id: 1, title: 'html' },
        { id: 2, title: 'html入门' },
        { id: 3, title: 'html文档' },
        { id: 4, title: 'Js文档' },
        { id: 5, title: 'js入门' },
        { id: 6, title: 'js的DOM操作' },
        { id: 7, title: 'vue2文档 ' },
        { id: 8, title: 'vue3指令' },
        { id: 9, title: 'vue3练习' },
        { id: 10, title: 'vue3文档 ' },
    ];
    // 过滤数组并放入新数组显示
    let result = search.filter((item) => {
        // 配对数组里的title和word匹配并全转小写
        return item.title.toLowerCase().includes(word.toLowerCase());
    });
    res.json(result);
})

// 如果接口页面出现404未找到，先看代码有没有错误，在试试换其他接口
// 4. 指定端口号，启动服务
app.listen(5522, () => {
    console.log('server is running at port 5522');
});
